package vcp.entity;

import java.util.List;

import vcp.enums.Screen;
/**
 * <p> customer class includes getters and setters </p>
 * @author VCP team
 *
 */
public class Customer extends User
{

	/**
	 * 
	 */
	private static final long serialVersionUID = - 1501981288293384346L;
	/**
	 * 
	 */

	private int customerID;
	/**
	 * getter
	 * @return customer id
	 */
	public int getCustomerID ()
	{
		return this.customerID;
	}
	/**
	 * setter
	 * @param customerID
	 */
	public void setCustomerID ( int customerID )
	{
		this.customerID = customerID;
	}

	private String phoneNo;
	/**
	 * getter
	 * @return phone number
	 */
	public String getPhoneNo ()
	{
		return this.phoneNo;
	}
	/**
	 * setter
	 * @param phoneNo
	 */
	public void setPhoneNo ( String phoneNo )
	{
		this.phoneNo = phoneNo;
	}

	private int bussinessClass;
	/**
	 * getter
	 * @return true if customer is buseness class
	 */
	public int getBussinessClass ()
	{
		return this.bussinessClass;
	}
	/**
	 * setter
	 * @param bussinessClass
	 */
	public void setBussinessClass ( int bussinessClass )
	{
		this.bussinessClass = bussinessClass;
	}

	private List <Subscription> subscriptions;
	/**
	 * getter
	 * @return list of subscriptions
	 */
	public List <Subscription> getSubscriptions ()
	{
		return this.subscriptions;
	}
	/**
	 * setter
	 * @param subscriptions
	 */
	public void setSubscriptions ( List <Subscription> subscriptions )
	{
		this.subscriptions = subscriptions;
	}

	private List <Complaint> complaints;
	/**
	 * getter
	 * @return list of complaints
	 */
	public List <Complaint> getComplaints ()
	{
		return this.complaints;
	}
	/**
	 * setter
	 * @param complaints
	 */
	public void setComplaints ( List <Complaint> complaints )
	{
		this.complaints = complaints;
	}

	private float balance;
	/**
	 * getter
	 * @return balance
	 */
	public float getBalance ()
	{
		return this.balance;
	}
	/**
	 * setter
	 * @param balance
	 */
	public void setBalance ( float balance )
	{
		this.balance = balance;
	}

	/****************************************************************************************************************************
	 *** User methods ***
	 ****************************************************************************************************************************/
	@Override
	public Screen getInitScreenType ()
	{
		return Screen.CUSTOMER;
	}

	@Override
	public Screen getInitTabScreen ()
	{
		return Screen.SUBSCRIBER;
	}

	@Override
	public String[] getVisibleTabs ()
	{
		return new String[]
				{ Screen.SUBSCRIBER.toString(),
				Screen.ACCOUNT_STATUS.toString(),
				Screen.FILL_COMPLAINT.toString(),
				Screen.LOG_OUT.toString() };
	}

}
